package com.ltedu.system.service;

import com.ltedu.system.domain.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltedu.system.domain.vo.SysMenuRoleVO;
import com.ltedu.system.domain.vo.SysRoleVO;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 角色信息 服务类
 * </p>
 *
 * @author Jerry
 * @since 2020-11-27
 */
public interface SysRoleService extends IService<SysRole> {

    /**
     * 获取用户角色列表
     *
     * @param userId 用户ID
     * @return 选中角色ID列表
     */
    List<Long> selectRoleListByUserId(Long userId);

    /**
     * 保存角色
     *
     * @param sysRoleVO
     * @return {@link Boolean}
     */
    Boolean save(SysRoleVO sysRoleVO);

    /**
     * 更新角色
     *
     * @param sysRoleVO
     * @return {@link Boolean}
     */
    Boolean update(SysRoleVO sysRoleVO);

    /**
     * 角色授权
     *
     * @param sysMenuRoleVo 系统菜单的角色签证官
     * @return {@link Boolean}
     */
    Boolean saveMenuRole(SysMenuRoleVO sysMenuRoleVo);

    /**
     * 获取用户角色权限
     *
     * @param userId 用户id
     * @return {@link Set<String>}
     */
    Set<String> RolePermissionByUserId(Long userId);

    /**
     * 判断用户是否管理员
     *
     * @param userId 用户id
     * @return boolean
     */
    boolean isAdmin(Long userId);
}
